
# from flask import Flask, json,request,jsonify
# import json

# # 实例化Flask
# app=Flask(__name__)

# # 加载配置文件
# from config import Config
# app.config.from_object(Config)

# # 跨域配置
# from flask_cors import CORS
# CORS(app)

# # 实现orm,对象关系映射
# from flask_sqlalchemy import SQLAlchemy
# db =SQLAlchemy(app)

# # 创建分类表
# class Cate(db.Model):
#     id = db.Column(db.Integer,primary_key=True,autoincrement=True)
#     name=db.Column(db.String(40),unique=True) #名称
#     level = db.Column(db.Integer,default=1) # 等级
#     pid = db.Column(db.Integer,default=0) # 父id
# db.create_all()

# # 分类接口 （增删改查）
# @app.route('/cateM',methods=['POST','GET','PUT','DELETE'])
# def cateM():
#     if request.method=='POST':
#         # 获取参数
#         data =request.data
#         # 对参数进行验证，如果有json.loads()
#         if data:
#             data = json.loads(data)
#         # 如果没有去from中获取
#         else:
#             data = request.form
#         print(data)
#         # 添加
#         cate=Cate(name=data['name'])
#         db.session.add(cate)

#         # 提交
#         db.session.commit()
        
#         # 返回
#         return jsonify({'code':200})

#     elif request.method == 'GET':
#         # 获取所有数据
#         cates=Cate.query.all()
#         #  重构数据 封装成json 先定义一个列表 
#         list=[]
#         # 判断数据是否存在
#         if cates:
#             # 循环遍历
#             for i in cates:
#                 # 定义一个字典 用键值对的形式提取信息
#                 dict={'id':i.id,'name':i.name}
#                 # 把字典加到列表中 把数据重构为json格式 也就是列表套字典
#                 list.append(dict)
#         # 返回json
#         return jsonify({'code':200,'list':list})

#     elif  request.method=='PUT':
#         id = request.args.get('id')
#         name =request.args.get('name')
    #     Cate.query.filter_by(id=id).update({'name':name})
    #     db.session.commit()
    #     # 返回
    #     return ({'code':200})
 
    # elif request.method=='DELETE':
    #     id=request.args.get('id')
#         Cate.query.filter_by(id=id).delete()
#         db.session.commit()
#         # 返回
#         return jsonify({'code':200})

# # 所有函数入口
# if __name__ == '__main__':
#     app.run(debug=True)
    



# 导入flask
from flask import Flask,request,jsonify
import json




# 实例化Flask
app=Flask(__name__)

# 加载配置文件
from config import Config
app.config.from_object(Config)

# 配置跨域
from flask_cors import CORS
CORS(app)


# 实现orm对象关系映射
from flask_sqlalchemy import SQLAlchemy
db=SQLAlchemy(app)

# 创建分类表
class Cate2(db.Model):
    id=db.Column(db.Integer,primary_key=True,autoincrement=True)
    name=db.Column(db.String(50),unique=True) #名称
    level=db.Column(db.Integer,default=1) #等级
    pid=db.Column(db.Integer,default=0) #父id

db.create_all()

# 配路由
@app.route('/cateM',methods=['POST','GET','PUT','DELETE'])
def cateM():
    if request.method=='POST':
        # 获取数据
        data=request.data
        # 如果有数据
        if data:
            data=json.loads(data)
        # 如果没有去from中获取
        else:
            data=request.form
        # 添加
        cate=Cate2(name=data['name'])
        db.session.add(cate)

        #提交
        db.session.commit()
        # 返回结果
        return jsonify({'code':200})

    if request.method=='GET':
        #获取所有数据
        cate=Cate2.query.all()
        # 重构数据
        list=[]
        # 循环
        for i in cate:
            #定义字典
            dict={'id':i.id,'name':i.name}
            list.append(dict)

        # 返回json
        return jsonify({'code':200,'list':list})

    if request.method=='PUT':
        # 获取id 和 name
        id=request.args['id']
        name=request.args['name']
        # 通过Id拿数据 然后修改name字段
        cate=Cate2.query.filter_by(id=id).update({'name':name})
        
        # 提交
        db.session.commit()
        # 返回
        return jsonify({'code':200})

    if request.method=='DELETE':
        # 获取id
        id=request.args['id']
        # 通过id拿数据 然后删除
        cate=Cate2.query.filter_by(id=id).delete()
        # 提交
        db.session.commit()
        # 返回json
        return jsonify({'code':200})


# 写函数入口
if __name__ == '__main__':
    app.run(debug=True)
